#!/opt/anaconda3/bin/python
# -*- coding:utf-8 -*-
'''
@project : meiduo_mall
@author  : leftxxk
#@file   : crons.py
#@time   : 2021-06-10 18:01:44
'''


# 静态页面的生成
'''
首页,详情页面   经常被访问    生成静态html
我们都是先查询数据库的数据
然后再进行HTML页面的染
不管是数据库的数据蟻存还是HTML夏面的樂(特别是分类注染,比较慢)多少都会影响用户的体验
最好的体验是
用户直接就可以访问到经过数据库查询,已经渲染的HTML页面静态化
经过数据库查询,已经渲染的HTML页面写入到指定目录
'''
import os
import time
from django.conf import settings
from django.template import loader
from apps.contents.models import ContentCategory
from utils.goods import get_categories

def generate_static_index_html():

    """
    生成静态的主页html文件
    """
    print('%s: generate_static_index_html' % time.ctime())

    # 获取商品频道和分类
    categories = get_categories()

    # 广告内容
    contents = {}
    content_categories = ContentCategory.objects.all()
    for cat in content_categories:
        contents[cat.key] = cat.content_set.filter(status=True).order_by('sequence')

    # 渲染模板
    context = {
        'categories': categories,
        'contents': contents
    }

    # 获取首页模板文件
    template = loader.get_template(
        '/Users/leftxxk/PycharmProjects/Django-项目/mei-duo-mall/meiduo_mall/templates/index.html')
    # 渲染首页html字符串
    html_text = template.render(context)
    # 将首页html字符串写入到指定目录，命名'index.html'
    file_path = os.path.join(os.path.dirname(settings.BASE_DIR), 'front_end_pc/index.html')
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(html_text)
    print('xxx')